home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-05-18 | 1.6 KB | 81 lines | [TEXT/CWIE] |
- //Copyright (c) 1997 Aidan Cully
- //All rights reserved
-
- #include "CLStrStuff.h"
-
- unsigned char *StrCpy( unsigned char *dest, const unsigned char *src ) {
- unsigned char *origDest = dest;
- unsigned char count = *src+1;
-
- while( count-- )
- *dest++ = *src++;
- return( origDest );
- }
-
- SInt8 StrCmp( const unsigned char *str1, const unsigned char *str2 ) {
- int index, count;
- Boolean equalLen;
-
- equalLen = *str1 == *str2;
- count = *str1 < *str2 ? *str1 : *str2;
- str1++;
- str2++;
- index = 2l;
- while( (*str1++ == *str2++) && (index < count ) )
- index++;
- if( (index == count) && equalLen && (*str1 == *str2) )
- return( 0 );
- return( 1 );
- }
-
- unsigned char *IToA( SInt16 num ) {
- int numDigits, digCount;
- UInt32 temp;
- Str32 retVal;
-
- if( num < 0 ) {
- numDigits=1;
- retVal[numDigits] = '-';
- num = -num;
- } else if( num == 0 )
- return "\p0";
- else
- numDigits=0;
- digCount = 0;
- for( temp=1; temp <= num; temp *= 10 )
- digCount++;
- temp /= 10;
- while( digCount-- ) {
- numDigits++;
- retVal[numDigits]=(num/temp)+'0';
- num=num-(num/temp)*temp;
- temp /= 10;
- }
- retVal[0]=numDigits;
- return( retVal );
- }
-
- unsigned char *StrCat( unsigned char *dest, const unsigned char *src ) {
- int index;
-
- for( index=1; index<=*src; index++ )
- dest[dest[0]+index]=src[index];
- *dest=(*dest)+(*src);
- return( dest );
- }
-
- unsigned char *StrStr( const unsigned char *src, const unsigned char *sub ) {
- Str255 substr, srcstr;
- int i;
-
- if( sub[0] > src[0] )
- return 0;
- StrCpy( substr, sub );
- StrCpy( srcstr, src );
- for( i = 0; i < src[0]-sub[0]; i++ ) {
- srcstr[i] = sub[0];
- if( !StrCmp( srcstr, substr ) )
- return (unsigned char*)src+i;
- }
- return 0;
- }